SQL DELETE statement
DELETE
statement een rij verwijdert uit een tabel is die rij definitief gedeleted!Probleem
Net zoals het DROP
statement verwijdert het DELETE
statement objecten uit de database. Het DROP
statement verwijdert een tabel uit de database, het DELETE
statement verwijdert hele rijen uit de tabel. Als je geen WHERE
clausule gebruikt worden alle rijen uit de tabel verwijderd en blijft alleen de structuur van de tabel over. Wees daar dus voorzittig mee want als de rijen gedeleted zijn kan je ze niet meer terughalen.
Oplossing
Meestal deleten we slechts één rij en gebruiken we dus de WHERE
clausule. In het volgende voorbeeld deleten we de laatst toegevoegde rij:
-- ji -- 27 november 2012 -- Bestandsnaam: BoekenDeleteWhere.sql use A88586JefInghelbrecht; delete from Boeken where Titel = 'De stad van God'; select * from Boeken;
Ik kan ook alle rijen uit de tabel in één keer deleten. Ik laat gewoon de where clausule weg:
Oefening -- ji -- 27 november 2012 -- Bestandsnaam: BoekenDeleteAll.sql use A88586JefInghelbrecht; delete from Boeken select * from Boeken;
Sla bovenstaan script op in een bestand met de naam BoekenDeleteAll.sql.
Dat is een zeer radicale operatie. Alle rijen zijn gedeleted en je kan die niet terugzetten met een 'undo' knop.